import $api from '@/sheep/api';
import $url from '@/sheep/url';
import $router from '@/sheep/router';
import $platform from '@/sheep/platform';
import $helper from '@/sheep/helper';
import zIndex from '@/sheep/config/zIndex.js';
let $storeModule = null;
// 异步初始化 $store（不阻塞）
import('@/sheep/store').then(module => {
  $storeModule = module.default || module;
}).catch(() => {
  $storeModule = () => ({
    app: { init: () => Promise.resolve() },
    user: { isLogin: false },
  });
});

const getStore = () => $storeModule;

import dayjs from 'dayjs';
import relativeTime from 'dayjs/plugin/relativeTime';
import duration from 'dayjs/plugin/duration';
import 'dayjs/locale/zh-cn';

dayjs.locale('zh-cn');
dayjs.extend(relativeTime);
dayjs.extend(duration);

const sheep = {
  $api,
  get $store() {
    return getStore();
  },
  $url,
  $router,
  $platform,
  $helper,
  $zIndex: zIndex,
};

// 加载Shopro底层依赖
export async function ShoproInit() {
  // 应用初始化
  const store = getStore();
  if (store) {
    const appStore = store('app');
    if (appStore && appStore.init) {
      await appStore.init();
    }
  }

  // 平台初始化加载(各平台provider提供不同的加载流程)
  $platform.load();

  if (process.env.NODE_ENV === 'development') {
    ShoproDebug();
  }
}

// 开发模式
function ShoproDebug() {
  // 开发环境引入vconsole调试
  // #ifdef H5
  // import("vconsole").then(vconsole => {
  // 	new vconsole.default();
  // });
  // #endif
  // 同步前端页面到后端
  // console.log(ROUTES)
}

export default sheep;
